<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:f="http://java.sun.com/jsf/core">

    <body>

        <ui:composition template="./plantillas/plantillaGeneral.xhtml">

            <ui:define name="titulo">
                Demo EJB+JPA+JSF :: Carro de la Compra
            </ui:define>

            <ui:define name="encabezado">
                <ui:include src="./plantillas/vistaCabecera.xhtml"/>
            </ui:define>

            <ui:define name="izquierda">
                <ui:include src="./plantillas/vistaIzquierda.xhtml"/>
            </ui:define>

            <ui:define name="contenido">

                <h:panelGroup styleClass="errores">
                    <h:messages layout="table" />
                </h:panelGroup>


                <h:form rendered="#{empty usuarioController.clienteActual}">
                    <h3> <h:outputText value="No está conectado/a" /> </h3>
                    <h4> <h:outputText value="Para confirmar el pedido debe iniciar sesión o registrarse."/> </h4>
                    <ul>
                        <li> <h:commandLink value="Iniciar conexión" action="login"/> </li>
                        <li> <h:commandLink value="Registro nuevo usuario" action="#{usuarioController.doNuevoUsuario}"/> </li>
                    </ul>
                </h:form>

                <h:form rendered="#{not empty usuarioController.clienteActual}">
                    <h:panelGroup styleClass="panelDatos">
                        <p> <h:outputText value="Datos del comprador" style="font-weight: bold;"/> </p>

                        <h:panelGrid frame="box" border="1" columns="2">
                            <h:outputLabel value="Nombre:" for="nombre" style="font-weight: bold;"/>
                            <h:outputText id="nombre" value="#{usuarioController.clienteActual.nombre}"/>

                            <h:outputLabel value="Apellidos:" for="apellidos" style="font-weight: bold;"/>
                            <h:outputText id="apellidos" value="#{usuarioController.clienteActual.apellidos}"/>

                            <h:outputLabel value="NIF:" for="nif" style="font-weight: bold;"/>
                            <h:outputText id="nif" value="#{usuarioController.clienteActual.nif}"/>

                            <h:outputLabel value="Domicilio:" for="domicilio" style="font-weight: bold;"/>
                            <h:outputText id="domicilio" value="#{usuarioController.clienteActual.domicilio}"/>

                            <h:outputLabel value="Código postal:" for="codPostal" style="font-weight: bold;"/>
                            <h:outputText id="codPostal" value="#{usuarioController.clienteActual.codPostal}"/>

                            <h:outputLabel value="Provincia:" for="provincia" style="font-weight: bold;"/>
                            <h:outputText id="provincia" value="#{usuarioController.clienteActual.provincia}"/>

                            <h:outputLabel value="Teléfono:" for="telefono" style="font-weight: bold;"/>
                            <h:outputText id="telefono" value="#{usuarioController.clienteActual.telefono}"/>

                            <h:outputLabel value="Correo electrónico:" for="email" style="font-weight: bold;"/>
                            <h:outputText id="email" value="#{usuarioController.clienteActual.email}"/>
                        </h:panelGrid>
                    </h:panelGroup>
                </h:form>

                <h3>
                    <h:outputText value="No hay productos seleccionados"
                                  rendered="#{empty carroCompraController.productos}"/>
                </h3>

                <h:form rendered="#{not empty carroCompraController.productos}">
                    <h:panelGroup styleClass="panelDatos" >
                        <p> <h:outputText value="Productos" style="font-weight: bold;"/> </p>

                        <h:dataTable var="productoCompra" value="#{carroCompraController.productos}"
                                     border="0" cellpadding="4" cellspacing="0" rules="all" style="border:solid 1px">
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Familia"/>
                                </f:facet>
                                <h:outputText value="#{productoCompra.producto.familia.nombre}"/>
                            </h:column>

                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Descripción"/>
                                </f:facet>
                                <h:commandLink action="#{catalogoController.doVerProductoActual(productoCompra.producto.id)}"
                                               value="#{productoCompra.producto.descripcion}"/>
                            </h:column>

                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Marca"/>
                                </f:facet>
                                <h:outputText value="#{productoCompra.producto.marca}"/>
                            </h:column>

                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Modelo"/>
                                </f:facet>
                                <h:outputText value="#{productoCompra.producto.modelo}"/>
                            </h:column>

                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Cantidad"/>
                                </f:facet>
                                <h:outputText value="#{productoCompra.cantidad}"/>
                            </h:column>

                            <h:column>
                                <h:commandLink action="#{carroCompraController.doIncrementarCantidad(productoCompra.producto.id)}"
                                               value="Incr. cantidad"/>
                            </h:column>

                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Precio"/>
                                </f:facet>
                                <h:outputText value="#{productoCompra.producto.precio}"/>
                            </h:column>

                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Importe"/>
                                </f:facet>
                                <h:outputText value="#{productoCompra.cantidad * productoCompra.producto.precio}"/>
                            </h:column>

                            <h:column>
                                <h:commandLink action="#{carroCompraController.doEliminarProducto(productoCompra.producto.id)}"
                                               value="Eliminar producto"/>
                            </h:column>
                        </h:dataTable>

                    </h:panelGroup>



                    <h4><h:outputText value="Total compra: "/> <h:outputText value="#{carroCompraController.importeTotal}"/></h4>


                    <h:panelGrid columns="3">
                        <h:commandButton action="#{carroCompraController.doConfirmarCarroCompra}" value="Confirmar pedido"/>
                        <h:commandButton action="#{carroCompraController.doVaciarCarroCompra}" value="Vaciar carro de la compra"/>
                        <h:commandButton action="productos.xhtml" value="Seguir Comprando"/>
                    </h:panelGrid>
                </h:form>
              

            </ui:define>

        </ui:composition>

    </body>
</html>
